package com.lining.orangeservice.entity.dto.request;

import com.lining.orangeservice.common.enums.OrderType;
import jakarta.validation.constraints.NotNull;
import lombok.Data;

import java.util.List;

/**
 * 订单创建请求DTO
 */
@Data
public class OrderCreateRequest {
    
    /**
     * 用户ID
     */
    @NotNull(message = "用户ID不能为空")
    private Long userId;
    
    /**
     * 订单类型
     */
    @NotNull(message = "订单类型不能为空")
    private OrderType orderType;
    
    /**
     * 商品列表
     */
    @NotNull(message = "商品列表不能为空")
    private List<OrderItemRequest> items;
    
    /**
     * 收货地址ID
     */
    @NotNull(message = "收货地址ID不能为空")
    private Long addressId;
    
    /**
     * 备注信息
     */
    private String remark;
    
    /**
     * 订单项请求内部类
     */
    @Data
    public static class OrderItemRequest {
        
        /**
         * 商品ID
         */
        @NotNull(message = "商品ID不能为空")
        private Long productId;
        
        /**
         * 商品数量
         */
        @NotNull(message = "商品数量不能为空")
        private Integer quantity;
    }
}